home *** CD-ROM | disk | FTP | other *** search
- /* Failure.c */
- /*
- * Failure.c
- * Copyright © 1992-93, Apple Computer Inc. All Rights Reserved.
- * Simple Failure handler.
- */
-
-
- #include "Failure.h"
- #include <Errors.h>
- #include <Processes.h>
- #include <Types.h>
- #include <Resources.h>
- #include <QuickDraw.h>
- #include <Fonts.h>
- #include <Events.h>
- #include <Windows.h>
- #include <Menus.h>
- #include <TextEdit.h>
- #include <Dialogs.h>
- #include <Desk.h>
- #include <ToolUtils.h>
- #include <Memory.h>
- #include <Files.h>
- #include <OSUtils.h>
- #include <OSEvents.h>
- #include <DiskInit.h>
- #include <Packages.h>
- #include <Traps.h>
-
- FailureRecordPtr gFailurePtr;
- Boolean gDebugOnError;
- StringPtr gFailureFile;
- long gFailureLine;
-
- void
- __Failure(
- OSErr errorStatus,
- short messageIndex
- )
- {
- if (gDebugOnError)
- DebugStr("\pFailure");
- FailureNeverDebug(errorStatus, messageIndex);
- }
-
- void
- FailureNeverDebug(
- OSErr errorStatus,
- short messageIndex
- )
- {
- gFailurePtr->status = errorStatus;
- gFailurePtr->messageIndex = messageIndex;
- if (gFailurePtr->status == noErr)
- gFailurePtr->status = abortErr;
- longjmp(gFailurePtr->jmpBuf, gFailurePtr->status);
- }
-
- void
- __FailNIL(
- short messageIndex
- )
- {
- OSErr status;
-
- status = MemError();
- if (status == noErr)
- status = ResError();
- if (status == noErr)
- status = memFullErr;
- __Failure(status, messageIndex);
- }
-